﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using SIGERP_Entidades;
using SIGERP_Negocio;

namespace SIGERP_Presentacion
{
    public partial class frmTipoDerivacion : frmABM
    {

        List<TipoDerivacion> derivaciones;
        DataTable dt;        
        
        public frmTipoDerivacion()
        {
            base.escribeLabels("Tipo Derivación");
            base.CargarGrilla();
        }

        public override void CargarGrilla()
        {

            dt = new DataTable();
            dt.Columns.Add("Id", typeof(int));
            dt.Columns.Add("Tipo de derivacion", typeof(string));
            dt.Columns.Add("Habilitado", typeof(bool));

            derivaciones = TiposDerivaciones.buscarTiposDerivacion();
            foreach (TipoDerivacion td in derivaciones)
                dt.Rows.Add(td.id,td.descripcion,td.habilitado);

            base.Grilla.DataSource = dt;
            base.Grilla.Columns[0].Visible = false;
        }

        public override void busqueda()
        {
            dt.Clear();

            foreach (TipoDerivacion td in derivaciones)
            {

                if (td.descripcion.ToUpper().StartsWith(txtPais.Text.ToUpper()))
                    dt.Rows.Add(td.id, td.descripcion, td.habilitado);
            }
        }

        public override void agregar()
        {
            frmTipoDerivacionNueva frm = new frmTipoDerivacionNueva();
            DialogResult opc = frm.ShowDialog();
            frm.Dispose();
            CargarGrilla();
        }

        public override void eliminar()
        {
            if (base.Grilla.SelectedRows.Count == 1)
            {
                if (MessageBox.Show("¿Desea dar de baja el tipo de derivacion seleccionado?", Text, MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
                {
                   TipoDerivacion td = TiposDerivaciones.buscarTipoDerivacion(Convert.ToInt32(base.Grilla.SelectedRows[0].Cells["Id"].Value));
                    TiposDerivaciones.borrar(td);
                    CargarGrilla();
                }
            }
        }

        public override void editar()
        {
            if (base.Grilla.SelectedRows.Count == 1)
            {
                TipoDerivacion td = new TipoDerivacion();
                td.id = Convert.ToInt32(base.Grilla.SelectedRows[0].Cells["Id"].Value);
                td.descripcion = base.Grilla.SelectedRows[0].Cells["Tipo de derivacion"].Value.ToString();
                td.habilitado = Convert.ToBoolean(base.Grilla.SelectedRows[0].Cells["Habilitado"].Value);
                frmTipoDerivacionActualizar frm = new frmTipoDerivacionActualizar(td);
                DialogResult opc = frm.ShowDialog();
                frm.Dispose();
                CargarGrilla();
            }
        }
    }
}
